package com.fxz.bean.factory.support;

import com.fxz.bean.definition.BeanDefinition;
import com.fxz.bean.factory.registory.BeanDefinitinRegistry;

import java.util.HashMap;
import java.util.Map;

/**
 * bean工厂
 * 做了缓存BeanDefinition的具体实现
 * 继承了自动装配(创建bean)的能力
 *
 * @author Fxz
 * @version 1.0
 * @date 2021-08-12 18:39
 */
public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory implements BeanDefinitinRegistry {

    /**
     * 注册信息的缓存
     */
    private Map<String, BeanDefinition> beanDefinitionMap = new HashMap<>();


    /**
     * 通过bean的name获取BeanDefinition
     *
     * @param name
     * @return
     */
    @Override
    public BeanDefinition getBeanDefinition(String name) {
        return beanDefinitionMap.get(name);
    }

    /**
     * 通过name将beanDefinition缓存
     *
     * @param name
     * @param beanDefinition
     */
    @Override
    public void registryBeanDefinitin(String name, BeanDefinition beanDefinition) {
        beanDefinitionMap.put(name, beanDefinition);
    }

}
